package cn.tedu.api;
/*

    泛型在接口上的使用


  结构：

       修饰词 interface 接口名<代表泛型的变量>

       泛型类型的确定：
        1） 在创建实现类时，就给接口确定具体的数据类型
        2） 在创建实现类时，依旧使用泛型，这样得到到内容跟 “泛型在类上面的使用”过程一致的。

 */
public interface GenericDemo2<ChengSir> {

    public abstract void add(ChengSir e);

    public abstract ChengSir getChengSir();

}
// 实现类上也一并添加和接口相同的泛型，具体的类型确定也是在创建实现类对象时才可以！
class GenericImp1<ChengSir> implements GenericDemo2<ChengSir>{

    @Override
    public void add(ChengSir e) {

    }

    @Override
    public ChengSir getChengSir() {
        return null;
    }
}
// 在定义实现类时，就确定好具体类型，下面具体类型就是：String
class GenericImp2 implements GenericDemo2<String>{

    @Override
    public void add(String e) {

    }

    @Override
    public String getChengSir() {
        return null;
    }
}
// 在定义实现类时，就确定好具体类型，下面具体类型就是：Integer
class GenericImp3 implements GenericDemo2<Integer>{
    @Override
    public void add(Integer e) {

    }

    @Override
    public Integer getChengSir() {
        return null;
    }
}

